實踐什麼呢?那當然就是clojure的程式怎麼跑的嘍
這邊挑幾個當時我進入時比較疑惑的點
所有東西起手式就是括弧,然後operater/function,最後是參數
藉由官方的圖,最後還有個小測驗
所有都有輸入跟輸出,最後一個()就是外面return,沒有就是nil
有些function只會做 1 件事
譬如 when,他的描述是 (when test & body)
那如果你在when想多做事情,外面要多包個do,範例
Lazy
在clojure裡,有時候你會看到return LazySeq,他其實就是沒有馬上執行,先回傳一個東西給你,你要自己展開
展開的方式其中一種就是doseq
也就是別的函式先寫yield,你要使用就take/for拿值出來
參考
Threading Macro, i.e. (->, ->>, ...)
這個就是pipeline,丟到呼叫的下一個參數的最前面或最後面
|> in elixir
immutable
所有東西都是不可變
我是常用let開發,所以variable的scope就是找到最近的那個定義
思維的轉變,越來越少寫分支(if/else)
以前在執行function前,會有滿多相關的條件檢查,現在越來越多cond->/case/...的條件組合
搭配前面提到的immutable,整個寫下來也滿清楚又沒有bug的
沒有 Polymorphism
所有的函式都是靠個參數數量決定的
其他就是搭配 exercism、4clojure 來熟悉上手了
如果有想到其他的就再回頭補充